The present invention relates to object storage, and more particularly, this invention relates to providing virtual namespaces and semantic policies for object-granular policy management in cloud storage systems and networks.
Cloud storage is not conducive to the typical file system-based storage policies and conventions such as hierarchical storage, block storage, etc. adopted for data storage in standalone workstations, storage area networks, etc. Accordingly, object storage has been implemented as the preferred storage architecture for cloud storage.
One conventional approach to object storage is to utilize different “containers” to store objects according to one or more storage policies. All objects in a particular container are subject to the same storage policy. Accordingly, the containers define the level of granularity of the object storage system and in order for an object to be subject to a different storage policy, it must be moved from the current container to a different container employing the different storage policy.
Undesirably, this requirement adds overhead to the object storage system, because each time an object requires a policy change, it must be moved physically on the underlying infrastructure and logically among the containers.
Some conventional object storage systems may therefore implement a manifest file to provide pointers to the various objects as they migrate around the object storage system. For example, the manifest file is typically created upon an object being moved to a new container, and is placed in the location from which the object was moved, with a pointer indicating the location to which the object was moved.
Undesirably, the manifest-file (and other similar pointer-based approaches) introduce additional lookup requirements, as a query to locate an object must pass through at least two, and as many as every container in which the object has been stored.
Accordingly, it would be beneficial to provide systems and techniques for allowing more facile policy changes to be applied to individual objects, without generating the significant additional lookup performance loss associated with static, pointer-based approaches.